#include<iostream>
using namespace std;
#include <string>

struct Student
{
    //成员列表

    //姓名
    string name;
    //年龄
    int age;
    //分数
    int score;
};
  //打印学生信息函数
  //1，值传递
  //修饰形参，实参不会改变
  void printStudent1(struct Student s)
  {
      s.age =100;
     cout<<"子函数中 姓名"<<s.name<<"年龄"<<"年龄"<<s.age<<"分数"<<s.score<<endl;
  }

    //2,地址传递
//    修饰形参，实参也会改变
    void printStudent2(struct Student * p)
    {
      p->age =200;
      cout<<"子函数2中姓名："<<p->name<<"年龄"<<p->age<<"成绩"<<p->score<<endl;
    }

int main()
{
    //将学生传入一个参数中，打印学生身上的信息

    //创建结构体变量
    struct Student s;
    s.name="小茹";
    s.age = 20;
    s.score =99;

    printStudent1(s);



    printStudent2(&s);


    cout<<"main函数中打印姓名"<<s.name<<"年龄"<<s.age<<"成绩"<<s.score<<endl;

    //如果你不想修改主函数中的数据，用值传递，反之用地址传递
    system("pause");
    return 0;

}